/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.webhomesites.padrao.view;

import br.com.webhomesites.configuracao.utils.ConfiguracaoInstancias;
import br.com.webhomesites.padrao.contracts.IComposicaoProdutoView;
import br.com.webhomesites.padrao.model.*;
import java.awt.Component;
import java.awt.event.ActionListener;
import java.awt.event.ItemListener;
import java.awt.event.MouseListener;
import java.util.List;
import javax.swing.JComboBox;
import javax.swing.JTextField;
import javax.swing.table.TableColumnModel;
import javax.swing.text.Document;

/**
 *
 * @author Webhome
 */
public class EstoqueProdutoView extends javax.swing.JInternalFrame {

    /**
     * Creates new form LocacaoView
     */
    public EstoqueProdutoView() {
        initComponents();
        
        comboProduto.removeAllItems();
        comboGrupoProduto.removeAllItems();
        txtCodigoGrupoProduto.setHorizontalAlignment(JTextField.RIGHT);
        txtCodigoProduto.setHorizontalAlignment(JTextField.RIGHT);
           
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        rgTipoComposicao = new javax.swing.ButtonGroup();
        jLabel1 = new javax.swing.JLabel();
        painelComposicaoProduto = new javax.swing.JPanel();
        txtCodigoGrupoProduto = new javax.swing.JTextField();
        labelCodigoProdutoComposto = new javax.swing.JLabel();
        comboGrupoProduto = new javax.swing.JComboBox();
        labelProdutoComposto = new javax.swing.JLabel();
        labelCodigoProdutoAcessorio = new javax.swing.JLabel();
        labelProdutoAcessorio = new javax.swing.JLabel();
        txtCodigoProduto = new javax.swing.JTextField();
        comboProduto = new javax.swing.JComboBox();
        painelIncluirProdutoAcessorio = new javax.swing.JPanel();
        btnPesquisar = new javax.swing.JButton();
        btnCancelarEstoque = new javax.swing.JButton();
        btnSalvarEstoque = new javax.swing.JButton();
        labelQuantidadeEstoque = new javax.swing.JLabel();
        txtQuantidadeEstoque = new javax.swing.JTextField();
        txtQuantidadeLocada = new javax.swing.JTextField();
        labelQuantidadeLocada = new javax.swing.JLabel();

        jLabel1.setText("jLabel1");

        setClosable(true);
        setIconifiable(true);

        painelComposicaoProduto.setBorder(javax.swing.BorderFactory.createTitledBorder("Produto Composto"));

        txtCodigoGrupoProduto.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txtCodigoGrupoProdutoActionPerformed(evt);
            }
        });

        labelCodigoProdutoComposto.setText("Cód. Grupo");

        comboGrupoProduto.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Selecione o produto" }));

        labelProdutoComposto.setText("Descrição Grupo Produto");

        labelCodigoProdutoAcessorio.setText("Cód. Prod.");

        labelProdutoAcessorio.setText("Descrição Produto");

        comboProduto.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Selecione o produto" }));

        javax.swing.GroupLayout painelComposicaoProdutoLayout = new javax.swing.GroupLayout(painelComposicaoProduto);
        painelComposicaoProduto.setLayout(painelComposicaoProdutoLayout);
        painelComposicaoProdutoLayout.setHorizontalGroup(
            painelComposicaoProdutoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painelComposicaoProdutoLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(painelComposicaoProdutoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, painelComposicaoProdutoLayout.createSequentialGroup()
                        .addGroup(painelComposicaoProdutoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(labelCodigoProdutoComposto, javax.swing.GroupLayout.DEFAULT_SIZE, 64, Short.MAX_VALUE)
                            .addComponent(txtCodigoGrupoProduto))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(painelComposicaoProdutoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(comboGrupoProduto, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(painelComposicaoProdutoLayout.createSequentialGroup()
                                .addComponent(labelProdutoComposto)
                                .addGap(0, 0, Short.MAX_VALUE))))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, painelComposicaoProdutoLayout.createSequentialGroup()
                        .addGroup(painelComposicaoProdutoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(labelCodigoProdutoAcessorio, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(txtCodigoProduto, javax.swing.GroupLayout.PREFERRED_SIZE, 64, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(11, 11, 11)
                        .addGroup(painelComposicaoProdutoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(comboProduto, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(painelComposicaoProdutoLayout.createSequentialGroup()
                                .addComponent(labelProdutoAcessorio)
                                .addGap(0, 0, Short.MAX_VALUE)))))
                .addContainerGap())
        );
        painelComposicaoProdutoLayout.setVerticalGroup(
            painelComposicaoProdutoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painelComposicaoProdutoLayout.createSequentialGroup()
                .addGroup(painelComposicaoProdutoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(labelCodigoProdutoComposto)
                    .addComponent(labelProdutoComposto))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(painelComposicaoProdutoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(comboGrupoProduto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(txtCodigoGrupoProduto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(painelComposicaoProdutoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(labelCodigoProdutoAcessorio)
                    .addComponent(labelProdutoAcessorio))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(painelComposicaoProdutoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txtCodigoProduto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(comboProduto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        painelIncluirProdutoAcessorio.setBorder(javax.swing.BorderFactory.createTitledBorder("Produto Acessório"));

        btnPesquisar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/search-icon.png"))); // NOI18N
        btnPesquisar.setMnemonic('p');

        btnCancelarEstoque.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/block-icon.png"))); // NOI18N
        btnCancelarEstoque.setMnemonic('c');

        btnSalvarEstoque.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/save-icon.png"))); // NOI18N
        btnSalvarEstoque.setMnemonic('s');

        labelQuantidadeEstoque.setText("Qtd. em Estoque");

        labelQuantidadeLocada.setText("Qtd. Locada");

        javax.swing.GroupLayout painelIncluirProdutoAcessorioLayout = new javax.swing.GroupLayout(painelIncluirProdutoAcessorio);
        painelIncluirProdutoAcessorio.setLayout(painelIncluirProdutoAcessorioLayout);
        painelIncluirProdutoAcessorioLayout.setHorizontalGroup(
            painelIncluirProdutoAcessorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painelIncluirProdutoAcessorioLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(painelIncluirProdutoAcessorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(txtQuantidadeEstoque, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(labelQuantidadeEstoque))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(painelIncluirProdutoAcessorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(txtQuantidadeLocada, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(labelQuantidadeLocada))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 64, Short.MAX_VALUE)
                .addComponent(btnSalvarEstoque, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(btnCancelarEstoque, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(btnPesquisar, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        painelIncluirProdutoAcessorioLayout.setVerticalGroup(
            painelIncluirProdutoAcessorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painelIncluirProdutoAcessorioLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(painelIncluirProdutoAcessorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(painelIncluirProdutoAcessorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                        .addComponent(btnPesquisar, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(btnCancelarEstoque, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(btnSalvarEstoque, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(painelIncluirProdutoAcessorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                        .addGroup(painelIncluirProdutoAcessorioLayout.createSequentialGroup()
                            .addComponent(labelQuantidadeLocada)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(txtQuantidadeLocada, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(painelIncluirProdutoAcessorioLayout.createSequentialGroup()
                            .addComponent(labelQuantidadeEstoque)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(txtQuantidadeEstoque, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(painelComposicaoProduto, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(painelIncluirProdutoAcessorio, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(painelComposicaoProduto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(painelIncluirProdutoAcessorio, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void txtCodigoGrupoProdutoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtCodigoGrupoProdutoActionPerformed
       
        // TODO add your handling code here:
    }//GEN-LAST:event_txtCodigoGrupoProdutoActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnCancelarEstoque;
    private javax.swing.JButton btnPesquisar;
    private javax.swing.JButton btnSalvarEstoque;
    private javax.swing.JComboBox comboGrupoProduto;
    private javax.swing.JComboBox comboProduto;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel labelCodigoProdutoAcessorio;
    private javax.swing.JLabel labelCodigoProdutoComposto;
    private javax.swing.JLabel labelProdutoAcessorio;
    private javax.swing.JLabel labelProdutoComposto;
    private javax.swing.JLabel labelQuantidadeEstoque;
    private javax.swing.JLabel labelQuantidadeLocada;
    private javax.swing.JPanel painelComposicaoProduto;
    private javax.swing.JPanel painelIncluirProdutoAcessorio;
    private javax.swing.ButtonGroup rgTipoComposicao;
    private javax.swing.JTextField txtCodigoGrupoProduto;
    private javax.swing.JTextField txtCodigoProduto;
    private javax.swing.JTextField txtQuantidadeEstoque;
    private javax.swing.JTextField txtQuantidadeLocada;
    // End of variables declaration//GEN-END:variables

    
    public void setCodigoGrupoProduto(long codigoGrupoProduto) {
        txtCodigoGrupoProduto.setText(Long.toString(codigoGrupoProduto));
    }

    
    public long getCodigoGrupoProduto() {
        return Long.parseLong(txtCodigoGrupoProduto.getText());
    }
    
    
    public void setCodigoProduto(long codigoProduto) {
        txtCodigoProduto.setText(Long.toString(codigoProduto));
    }

    
    public long getCodigoProduto() {
        return Long.parseLong(txtCodigoProduto.getText());
    }

    
    public void setListaGrupoProduto(List<GrupoProdutoModel> listaGrupoProduto) {
        comboGrupoProduto.removeAllItems();
        for (int i = 0; i < listaGrupoProduto.size(); i++) // Percorro o Array List com o For aprimorado.  
        {
            this.comboGrupoProduto.addItem(listaGrupoProduto.get(i).getDescricao()); // Adiciono os dados.  
        }
    }   
    
    
    public void setListaProduto(List<ProdutoModel> listaProduto) {
        comboProduto.removeAllItems();
        for (int i = 0; i < listaProduto.size(); i++) // Percorro o Array List com o For aprimorado.  
        {
            this.comboProduto.addItem(listaProduto.get(i).getDescricao()); // Adiciono os dados.  
        }
    }   

    
    public void packAndShow() {
        ConfiguracaoInstancias.getDesktop().getDesktop().add(this);
        this.pack();
        this.setVisible(true);
    }

    
    public void clearFields() {
        //throw new UnsupportedOperationException("Not supported yet.");
    }

    
    public void enableTxtCodigoGrupoProduto(boolean arg) {
        txtCodigoGrupoProduto.setEnabled(arg);
    }
    
    
    public void enableTxtCodigoProduto(boolean arg) {
        txtCodigoProduto.setEnabled(arg);
    }
 
    public void enableComboGrupoProduto(boolean arg) {
        comboGrupoProduto.setEnabled(arg);
    }

    
    public void enableComboProduto(boolean arg) {
        //txtLocacaoCodigoCliente.setEnabled(arg);
    }   

    
    public void enableBtnCancelarEstoque(boolean arg) {
        btnCancelarEstoque.setEnabled(arg);
    }

    
    public void enableBtnSalvarEstoque(boolean arg) {
        btnSalvarEstoque.setEnabled(arg);
    }

    
    public void removeAllitensComboGrupoProduto() {
        //throw new UnsupportedOperationException("Not supported yet.");
    }

    
    public void removeAllitensComboProduto() {
        //throw new UnsupportedOperationException("Not supported yet.");
    }
     
    public void setAlterarActionListener(ActionListener listener) {
        //throw new UnsupportedOperationException("Not supported yet.");
    }

    
    public void setCancelarEstoqueActionListener(ActionListener listener) {
        this.btnCancelarEstoque.addActionListener(listener);
    }

    public void setSalvarEstoqueActionListener(ActionListener listener) {
        this.btnSalvarEstoque.addActionListener(listener);
    }

    public void setBtnSairActionListener(ActionListener listener) {
        //throw new UnsupportedOperationException("Not supported yet.");
    }
    
    
    public void setBuscaAvancadaActionListener(ActionListener listener) {
        btnPesquisar.addActionListener(listener);
    }

    
    public void clearFieldsPainelSuperior() {
        Component[] componentesPainel;
        componentesPainel = painelComposicaoProduto.getComponents();
        for (int j = 0; j < componentesPainel.length; j++) {
            if (componentesPainel[j] instanceof JTextField) {
                JTextField field = (JTextField) componentesPainel[j];
                field.setText("");
            }
        }
    }

    
    public void clearFieldsPainelInferior() {
        Component[] componentesPainel;
        componentesPainel = painelIncluirProdutoAcessorio.getComponents();
        for (int j = 0; j < componentesPainel.length; j++) {
            if (componentesPainel[j] instanceof JTextField) {
                JTextField field = (JTextField) componentesPainel[j];
                field.setText("");
            }
        }
    }

    
    public void setComboGrupoProdutoFocus() {
        this.comboGrupoProduto.requestFocus();
    }

    
    public void setComboProdutoFocus() {
        this.comboProduto.requestFocus();
    }
    
    
    public void setDescricaoGrupoProduto(String produtoComposto) {
        comboGrupoProduto.setSelectedItem(produtoComposto);
    }

    
    public String getDescricaoGrupoProduto() {
        return comboGrupoProduto.getSelectedItem()==null?"1":comboGrupoProduto.getSelectedItem().toString();
    }

    
    public void setDescricaoProduto(String produtoAcessorio) {
        comboProduto.setSelectedItem(produtoAcessorio);
    }

    
    public String getDescricaoProduto() {
        return comboProduto.getSelectedItem().toString();
    }

    
    public void setComboDescricaoGrupoProdutoItemStateChanged(ItemListener listener) {
        comboGrupoProduto.addItemListener(listener);
    }
    
    
    public void setComboDescricaoProdutoItemStateChanged(ItemListener listener) {
        comboProduto.addItemListener(listener);
    }

    
    public JComboBox getComboDescricaoGrupoProduto() {
        return comboGrupoProduto;
    }

    
    public JComboBox getComboDescricaoProduto() {
        return comboProduto;
    }

}
